using System;
using System.Data;
using System.Data.SqlClient;
using LibreriaCommon;
using LibreriaData;
using Microsoft.Practices.EnterpriseLibrary.Data;
using SistemaControlTraficoLibDS;

namespace SistemaControlTraficoLibData
{
    public class daViaje : daViajeBase, IDisposable
    {
        public daViaje(SecurityInfo securityInfo) : base(securityInfo)
        {
        }

        public DataSet FindByFiltros(int ViajeEstadoID, string ClienteRazonSocial, string MovilNumero, Nullable<DateTime> FechaDesde, Nullable<DateTime> FechaHasta, object estado)
        {
            try
            {
                DataSet ds = new DataSet();
                daCommon.GenericFind(securityInfo, "ViajeFindByFiltros", ds, new string[] { "Viaje" }, ViajeEstadoID, ClienteRazonSocial, MovilNumero, FechaDesde, FechaHasta, estado);
                return ds;
            }
            catch (Exception ex)
            {
                throw new daException(ex);
            }
        }
        public DataSet FindByDay()
        {
            try
            {
                DataSet ds = new DataSet();
                daCommon.GenericFind(securityInfo, "ViajeFindByDay", ds, new string[] { "Viaje" });
                return ds;
            }
            catch (Exception ex)
            {
                throw new daException(ex);
            }
        }
        public DataSet FindByDayAbierto()
        {
            try
            {
                DataSet ds = new DataSet();
                daCommon.GenericFind(securityInfo, "ViajeFindByDayAbierto", ds, new string[] { "Viaje" });
                return ds;
            }
            catch (Exception ex)
            {
                throw new daException(ex);
            }
        }

        public void Desactivar(int viajeID)
        {
            try
            {
                daCommon.ExecuteNonQuery(securityInfo, "ConnectionString", "ViajeDesactivar", viajeID);
            }
            catch (Exception ex)
            {
                throw new daException(ex);
            }
        }

        public int FindProximosASalir()
        {
            try
            {
                DataSet ds = new DataSet();
                daCommon.GenericFind(securityInfo, "ViajeFindProximosASalir", ds, new string[] { "Viaje" });

                return int.Parse(ds.Tables[0].Rows[0]["Cantidad"].ToString());
            }
            catch (Exception ex)
            {
                throw new daException(ex);
            }
        }


        public DataSet FindDiasCerrados()
        {
            try
            {
                DataSet ds = new DataSet();
                daCommon.GenericFind(securityInfo, "ViajeFindByDayCerrados", ds, new string[] { "Viaje" });
                return ds;
            }
            catch (Exception ex)
            {
                throw new daException(ex);
            }
        }
    }
}

